Queen.js ➔ ???   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8

Duplication

Lines 8
Ratio 100 %

Code Coverage

Tests 6
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 2
c 2
b 0
f 0
nc 2
nop 1
dl 8
loc 8
ccs 6
cts 6
cp 1
crap 2
rs 9.4285
1
/**
2
 * Queen module
3
 * @module
4
 */
5 View Code Duplication
"use strict";
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
6
7
/**
8
 * Class with Queen logic
9
 */
10
class Queen {
11
    /**
12
     * init
13
     */
14
    constructor(color) {
15 4
        this.symbol = "Q";
16 4
        this.moved = 0;
17 4
        this.active = true;
18 4
        this.color = color;
19 4
        this.rows = [null, "A", "B", "C", "D", "E", "F", "G", "H"];
20 4
        this.img = this.color === "white" ? "w-queen" : "b-queen";
21
    }
22
23
    legalMove(x, y, nx, ny) {
24
        // row
25 6
        if (x == nx && y !== ny || x !== nx && y == ny) {
26
            return true
27
        }
28
29
        let xNum = this.rows.indexOf(x);
30
        let nxNum = this.rows.indexOf(nx);
31
32
        let xStep = Math.abs(xNum - nxNum);
33
        let yStep = Math.abs(y - ny)
34 2
        if (xStep === yStep) {
35
            return true
36
        }
37
38
        return false;
39
    }
40
}
41
42
43
module.exports = Queen;
44